1. Field of the Invention
This invention relates generally to media entertainment systems which use Electronic Program Guides (EPGs), and, more specifically, to a system and method of generating, for a particular time period, a suggested schedule of media presentations.
2. Description of the Related Art
An Electronic Program Guide (EPG) provides a visual display of media programming schedule information. Such media programming includes, but is not limited to, television shows (cable or broadcast), radio shows, and Webcasts (multicasts over the Internet). Typically, the media programming displayed is shown in real-time, i.e. the scheduling information shown is taking place currently or in the near future.
An exemplary EPG Graphical User Interface (GUI) is shown in FIG. 1. A timeline broken down into half-hour blocks is at reference numeral 101, and the programming for five different channels or stations is shown as horizontal strips at reference numerals 111–115. The user may use an input/ouput (I/O) device to select a particular block in order to see more information regarding the event (i.e., a discrete item of media presentation on a channel, such as a TV or radio show) indicated by that block. In FIG. 1, block 120 has been selected, as shown by its darker outline. Because it has been selected, descriptive information concerning the event in block 120 is shown at the top of the GUI at reference numeral 130. Preview display 130 may contain images and video as well as text to describe the event. The GUI in FIG. 1 only shows one segment of the programming schedule: specifically, the events on channels (or stations or websites) 2, 3, 4, 5, and 6 from time 8:00 to 9:30 p.m. In order to see other channels, the user may scroll up or down using the vertical scroll bar 140 and, in order to see different times, the user may scroll forward in time or backward in time using horizontal scroll bar 150.
The EPG GUI has been described independently of any particular medium or output device because the concept of an EPG GUI is likewise independent of any particular medium or display device. However, a block diagram of the relevant functional modules in a conventional media entertainment system that employs an EPG GUI will now be described with reference to FIG. 2. A media source 210 provides content through communication means 215. Examples of a media source include, but are not limited to, a cable TV (CATV) system, a broadcast television system, the Internet, or a storage/playback device (VCR, DVD player, CD-ROM player, a hard drive, a solid-state memory storage unit, etc.). Each media source may have many channels or just one channel.
Although communication means 215 is shown as a system bus in FIG. 2, it is merely for ease of presentation and does not represent the actual implementation of communication means 215. The system bus representation may describe one embodiment, where the different units are connected by a local area network (LAN). However, in other embodiments, there might be point-to-point connections between elements (with no shared broadcast medium) or a combination of separate networked and point-to-point connections. For example, a CATV system (Media Source 210) may have a point-to-point connection by coaxial cable with Receiver/Tuner 220 (“point-to-point” from the viewpoint of the individual Receiver/Tuner 220, not the viewpoint of the CATV system), whereas Receiver/Tuner 220, Controller 230, and output means 250 may all be connected by the interior wiring of a TV set. Examples of the one or more connections making up the communication means 215 include, but are not limited to, coaxial cable, terrestrial RF transmission, optical fiber, satellite microwave transmission, telephone network, local area network (LAN), etc. Media source 210 may comprise multiple media sources and the communication means 215 may comprise multiple communication means.
Receiver/Tuner 220 receives the media content by communication means 215 and transmits one or more channels to output means 250. Examples of a receiver/tuner 220 include, but are not limited to, a stereo AM/FM receiver, a television UHF/VHF broadcast receiver embedded in a television set, a set-top box (STB) attached to a CATV cable line, a receiver/tuner incorporated into a computer, a web browser, etc. A web browser is appropriate in this context because a web browser “tunes in” a particular URL (Uniform Resource Locator) to receive media content, such as streaming real-time video. Furthermore, a web browser may be implemented in a PC (Personal Computer), a PDA (Personal Digital Assistant), a mobile terminal (e.g. a WAP-enabled cellular telephone), or any device with a network connection and a processor. A channel may be a “web channel” or the output of a television station, a radio station, or a computer server. Examples of output content on a channel include, but are not limited to, shows, movies, real-time audio/video feed, news text, graphics, images, etc. Examples of output means 250 include, but are not limited to, a television set, a computer or television monitor, a stereo speaker system, a holographic display, a screen on a PDA or mobile device, etc.
A controller 230 controls receiver/tuner 220 to select channels to be output on output means 250 and may control other components in FIG. 2, depending on the particular system involved. Controller 230 may comprise one or more processors, may be integrated with receiver/tuner 220, and may be able to perform the steps of a program. Such a program may be stored in Storage 280 or embedded in the controller itself (e.g. the controller is an Application Specific Integrated Circuit (ASIC) chip). Storage 280 is in FIG. 2 for ease of description, and does not necessarily represent hardware. Because controller 230 may require different items stored, such as BIOS, programs, and data, Storage 280 in FIG. 2 symbolically represents the one or more locations where these items are stored. Storage 280 may be located remotely (e.g., near Media Source 210), locally (near output means 250), or broken up and distributed both locally and remotely. Storage 280 may be solid-state (SDRAM, flash memory, etc.), magnetic (hard drive, tape, etc.), or optic (CD-ROM, DVD, etc.) memory.
A Scheduling Information Source 260 provides scheduling information for the EPG that is generated for output means 250. In practice, the Scheduling Information Source 260 may be integral with the Media Source 210, e.g., scheduling data may be sent along with the channels in the form of an additional channel or as data multiplexed with individual channels. However, the Scheduling Information Source 260 may be a stand-alone server on the Internet or plugged into a CATV system. By contrast, the Scheduling Information Source 260 may also be multiple distributed information sources or downloaded locally from a portable storage means, such as a floppy disk. The scheduling information that is sent from the Scheduling Information Source 260 may be formatted for output on the output means 250, or may be unformatted, in which case the controller 230 would oversee the formatting of the scheduling information. Furthermore, the scheduling information may be continually broadcast or downloaded using a request/reply protocol, where the controller would request particular scheduling information as the occasion arose and the Scheduling Information Source 260 would reply with that particular scheduling information. Such a protocol might be used if the Scheduling Information Source 260 is implemented as multiple distributed information sources.
User Profile(s) Storage 270 stores records for one or more users who use output means 250. Each user profile record contains preference information regarding one or more users. Examples of preference information include, but are not limited to, preferred genre (e.g., horror, romance, westerns, etc.), preferred actor(s), preferred sports teams(s), scheduling information not to be shown (e.g., a parent might restrict a child's EPG not to show the schedules of R-rated material), preferred stations/channels (e.g., a TV channel, a website, a radio station, etc.), preferred events, relative standings of preferred events, and preferred keywords (e.g., for words that show up in the descriptive information). These preferences may be entered manually by the one or more users or compiled over time by monitoring the one or more users. The User Profile(s) Storage 270 may be stored locally or remotely.
The functional module description of FIG. 2 effectively encompasses the wide variety of media presentation implementations to which the present invention is directed. As an example, the functional module description can equally be applied to an embodiment comprised of a television set connected to a CATV system, an embodiment comprised of a digital radio receiver attached to a satellite dish, and an embodiment comprised of a PC connected to the Internet, as well as a variety of other embodiments.
One improvement to this type of media system is the addition of Recommendation System 290, which suggest different channel events to the user. Recommendation System 290 may base its recommendations on generic recommendations (for any audience), such as the “Best Bets” of a newspaper, or on specific recommendations for a group or individual. Recommendation System 290 may be implemented locally, e.g., as a program run through Controller 230, or remotely, e.g. as a function performed at Media Source 210. Specific recommendations made to groups or individuals by Recommendation System 290 may be based on individual or group user preferences (either determined by preference monitoring or by direct preference input of the user or group). Exemplary recommendation values for different events on different channels are shown in Table 1, where higher numbers reflect events that have been determined to be preferred. As an example, the event E3 on channel 32, which is scheduled for transmission from 9:00 to 9:30, has a recommendation value of 60 out of 100. The event in the 7:30–8:00 time slot that would be recommended to a user is event E1 on channel 44 because it has the highest recommendation value (69).
TABLE 1Recommendation ValuesChannelEventScheduled TimeRecommendation Value32E17:30–8:0025E28:00–9:0050E39:00–9:3060E4 9:30–10:0027E510:00–11:007144E17:30–8:0069E28:00–9:0050E3 9:00–11:305978E17:30–8:0010E28:00–9:0040E39:00–9:3083E4 9:30–10:0050E510:00–11:0066
One recommendation system is described in a patent application entitled Three-Way Media Recommendation Method and System (U.S. application Ser. No. 09/627,139, filed Jul. 27, 2000; hereinafter referred to as the “3-way system”), which is hereby incorporated by reference. In that system, a preference engine and processing system is used to combine three different profiles in order to generate recommendation values for each event. As shown in FIG. 3, the three different profiles are created and altered based on data received from or generated by user 300. The Feedback Module 310 maintains a profile based on the user entering Direct Event Feedback 301. Direct Event Feedback 301 comprises the ranking of an event, such as a user entering a particular score (from 1 to 10) for a particular event.
The Implicit Module 320 maintains a user behavior profile based on background monitoring of the user's behavior 302. This background monitoring is performed within the system by tracking and recording what events the user watches, and how often. In other words, user behavior 302 is nothing more than what the user instructs receiver/tuner 220 to present to him and when. This may be implemented as a simple memory/database function. For example, the user always watches a particular show on Thursday night at 8 p.m. and the memory/database records this, after a certain period of time the correlation between that particular time slot and the particular event would exceed a threshold thus indicating a preference. As a result, Implicit Module 320 would maintain a high ranking for that show in that time slot.
The Explicit Rule Module 330 maintains a profile based on the user entering explicit rules 303, or attribute-value pairs, concerning viewing preferences. These explicit rules are more detailed and complicated than the direct event feedback 301 used in the Feedback Module 310. An example of an explicit rule would be that the user likes documentary programs about political figures, but, if a game involving the N.Y. Knicks basketball team is on television, the user would prefer watching that. Such attribute-value pairs need not be tied to any particular time slot or particular event.
The three modules, the Feedback Module 310, the Implicit Module 320, and the Explicit Rule Module 330, generate respective recommendations, Feedback Module Recommendations 315, Implicit Module Recommendations 325, and Explicit Rule Module Recommendations 335. These recommendations are combined by Combiner 340 in order to generate final recommendation values 350. Thus, each event will have a related recommendation value. The manner in which Combiner 340 combines the input recommendations is open to a wide variety of mathematical and algorithmic forms. For example, Combiner 340 may use suitable mathematical forms to appropriately weight different factors and/or profile recommendations, and then sum the resulting weighted recommendations.
The output per event of the 3-way system (and conventional recommendation systems) is a one-dimensional value that does not change during the time the event is broadcast. In other words, if the recommendation value of an event is 5 when the event begins, it is still 5 when the event is about to end. This is shown graphically in FIGS. 4A–4C where the recommendation values REx for the events Ex, in Table 1 are charted over time.
An improvement over the limitations of one-dimensional recommendation values output by conventional recommendation systems is disclosed in the patent application entitled Recommender System using “Fuzzy-Now” for Real-Time Events (U.S. application Ser. No. 09/730,676 filed Dec. 6, 2000; hereinafter referred to as the “Fuzzy-Now system”), which is hereby incorporated by reference. In that disclosure, a “Fuzzy-Now” Function Module 295 is added to the system shown in FIG. 2. The “Fuzzy-Now” Function Module 295 maintains and adapts Fuzzy-Now functions which will be applied to the one-dimensional values generated by conventional recommendation systems.
These Fuzzy-Now functions yield a weighting factor to be applied to current viewing recommendations. Because it is based on time, the Fuzzy-Now function typically varies over time and that variation is typically related to the starting and ending times for an event. An exemplary and simple Fuzzy-Now function for an event is shown in FIG. 5. In FIG. 5, there is an event occurring over time period (tend–tstart) with a starting time of tstart and an ending time of tend. There is also a waiting starting time of twait—start, representing the moment in time before the event starts when the user would begin to have some preference for turning to the channel that is about to show that event. twait—start is determined by subtracting threshold time tthreshold from the tstart of the event, where tthreshold is the total amount of time that the user is willing to wait for the event to start.
The Fuzzy-Now function in FIG. 5 produces a weighting factor w for the event over time, with, for example, 1 being the most preferred and 0 being not preferred at all. In one aspect, the Fuzzy-Now function might be considered to represent the answer to the question: “how enjoyable is this program if I start watching it (or start waiting for it) now?”. The assumption behind the Fuzzy-Now function of FIG. 5 is that the user prefers to see the start of an event, and that his or her interest wanes from that point onward, as indicated by slope 503. Slope 502 indicates the user's willingness to wait before the event begins. If it is before the waiting start time twait—start, the user is not willing to wait at all. After waiting start time twait—start, the user is increasingly willing to wait as the amount of remaining waiting time decreases. Another simple Fuzzy-Now function might have a plateau in slope 503 to indicate a continued and constant enjoyment level.
This is a simple Fuzzy-Now function because it merely has straight line slopes connecting key times of the event (the key times being f(tstart)=1, f(tend)=0, and f(twait—start)=0). There may be far more complex Fuzzy-Now functions based on different assumptions. For example, the user may enjoy the final Jeopardy round of the Jeopardy television show more interesting than the other Jeopardy rounds. Because the final Jeopardy round occurs roughly five minutes before the end, the peak of the Fuzzy-Now function for Jeopardy may occur there, rather than tstart. In the same vein, the user may be more interested in watching the end of sports events or the final climax of a movie rather than the beginning.
FIGS. 6A–6C show more complex Fuzzy-Now weighted functions w=fw(Ex) for the same events Ex on the same channels and the same particular time period as FIGS. 4A–4C. It is unlikely that there would be as wide a disparity between Fuzzy-Now functions as is shown between the individual Fuzzy-Now functions in FIGS. 6A–6C; however, the variety of shapes makes it easier to understand the process. Furthermore, for convenience, the weighted functions in FIGS. 6A–6C only apply to the time period between the start time and the end time of the event, and not the waiting time before the event starts (tstart−tthreshold=twait—start in FIG. 5).
As an example of a more complex Fuzzy-Now function, event E1 on channel 32 between 7:30 and 8:00 in FIG. 6A has a Fuzzy-Now weighted function fw(E1) which shows increasing interest for the first 15 minutes of the event (610), and then a sustained plateau of interest during the last 15 minutes of the event (620). As another example, in FIG. 6B, event E2 on channel 44 between 8:00 and 9:00 has a Fuzzy-Now weighted function fw(E2) with a slowly decreasing interest curve 640. Because it is used to weight the recommendation values, the Fuzzy-Now function w=fw(Ex) varies between 0 and 1 (as shown by the y-axis in FIGS. 6A–6C) so that events will only have their total recommendation value when the Fuzzy-Now function is highest (w=1) and will have no recommendation value when the Fuzzy-Now function is lowest (w=0).
Lastly, FIGS. 7A–7C show the final recommendation functions fR(Ex)=fw(Ex)*REx for each event on each channel of Table 1 and FIGS. 4 and 6. The recommendation function fR(Ex) (FIGS. 7A–7C) of an event Ex is calculated by applying (i.e., multiplying) the weighted Fuzzy-Now function fw(Ex) (FIGS. 6A–6C) for that event Ex to the recommendation value REx (FIGS. 4A–4C) of that event Ex. For example, in FIG. 7A, the recommendation function fR(E1) 720 of event E1 on channel 32 between 7:30 and 8:00 equals the recommendation value RE=25 (401 in FIG. 4A) multiplied by the Fuzzy-Now function fw(E1) (601 in FIG. 6A). Thus, although the last fifteen minutes of event E1 on channel 32 show the greatest amount of interest (620 in FIG. 6A), the recommendation value for E1 is only 25 (401 in FIG. 4A), so those fifteen minutes have a final recommendation function value of 25 (725 in FIG. 7A).
However, neither of these systems address the impact of the personal schedule of the user on the user's personal preferences. In other words, the time the user arrives home and turns on the TV, the time the user turns off the TV on particular nights, has an effect on what the user may, or may not, enjoy. These incidents correlate with extra-media programming personal events in the user's life, such as meal time, bedtime, periodic meetings (P.T.A., cub scout, etc.), poker night, etc. Therefore, there is a need to receive the personal schedule of a user and incorporate the received personal schedule into the recommendation procedure. The schedule may be received by monitoring the personal schedule of the user or direct input by the user.